#ifndef EVENT_H
#define EVENT_H

//#include <float.h>
//#include "global.h"

typedef enum EventId_t{
    Termination,
    Initiation,
    HandOver,
    Null
} EventId;

struct Init_paras{
	EventId id;
	double time;
	double speed;
	int station;
	double duration;
	double position;
};

struct state{
	double time;
	int dropped; 
	int blocked; 
	int total; 
	vector<pair<int,int>> Cell_Change;//<cell number, +/- 1>
};

class Event {
public:
    EventId id;
    double time;
    double speed;
    int station;
    double duration;
    double position;

    Event(double t, double v, int s, double d, double p): id(Initiation),time(t),speed(v),station(s),duration(d),position(p){}
    Event(double t, double v, int s, double d): id(HandOver),time(t),speed(v),station(s),duration(d){}
    Event(double t, int s) : id(Termination), time(t), station(s){}
    Event(EventId i, double t) : id(i), time(t) {}
	
};

#endif
